////////////////////////////////////////////////////////////////////////////////
//	Copyright 2003 G-Lab. All rights reserved.
//	Date : 2003-3-7
//	Update : 
//	Author : Raymond Jeon
//	Remarks : Token parsing
////////////////////////////////////////////////////////////////////////////////




#include <string.h>
#include "gl_lib_string.h"






////////////////////////////////////////////////////////////////////////////////
//	Date : 2003-3-7
//	Update : 
//	Author : Raymond Jeon
//	Parameters
//	Return Value  
//	Remarks 
////////////////////////////////////////////////////////////////////////////////

char *GlStrTok(char *s, const char *sap, char **pSave)
{
	if (!s)	
		s = *pSave;
	if (!s) 
	{
		*pSave = NULL;
		return NULL;
	}
	if (__VAL(sap)) 
	{
		char *p;
		while (*s && strchr(sap, *s)) 
		{
			s++;
		}
		if (*s) 
		{
			p = s+1;
			while (*p && !strchr(sap, *p)) p++;
			if (*p) 
			{
				*p = '\0';
				p++;
				while (*p && strchr(sap, *p)) p++;
				if (*p)
					*pSave = p;
				else
					*pSave = NULL;
			} 
			else 
			{
				*pSave = NULL;
			}
		} 
		else 
		{
			*pSave = NULL;
			s = NULL;
		}
	} 
	else 
	{
		*pSave = NULL;
	}
	return s;
}




